package cn.qayy.controler;

import java.util.HashMap;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import com.alibaba.fastjson.JSONObject;

import cn.qayy.pojo.User;
import cn.qayy.service.IUserService;
import cn.qayy.utils.JsonResult;
import cn.qayy.utils.MyMD5;
import cn.qayy.utils.ResonseUtils;

@Controller
@RequestMapping("/user")
public class UserController {
	@Resource
	private IUserService userService;
	
	@RequestMapping(value = "/toLogin.do")
	public JsonResult toLogin(HttpServletResponse response,HttpServletRequest request,
			String username,String password, ModelMap model) {
		System.out.println(password+"--"+username);
		/**
		 * 这里的参数应该与页面的input元素的name一一对应，才能接收得到
		 * var params = $("#login").serialize();表单form序列化，也可以通过对象（属性应该与input的name一一对应）来接收
		 * 
		 * toLogin()方法的参数个数不一定与前台页面的form里的参数name一致，但是名字要一一对应一致才能接收，参数个数很灵活
		 */
		Map<String,Object> data = new HashMap<String,Object>();
		
		/**
		 * session方案
		 * 生成的验证码存放在session里，用于与用户输入的验证码进行对比，是否输入正确
		 */
		HttpSession session = request.getSession();
		
		if(StringUtils.isNotBlank(" dd ")) {
			/***
			 * StringUtils.isNotEmpty 空字符会被单做元素。
			 * StringUtils.isNotBlank 不能为空白，null,空字符等都是空白。
			 */
		}
		User user = userService.loginUser(username, MyMD5.toMd5(password));
		//System.out.println(user.getUser_name());
		if (user != null) {// 说明当前用户存在
			data.put("user", user);
			/***
			 * session里存放一个对象。
			 */
			session.setAttribute("user", user);
		} else {
			data.put("message", "用户名/密码  输入错误!");
		}
		JSONObject json = new JSONObject();
		json.put("data", data);
		ResonseUtils.writeResponseByJson(response, json);;
		//System.out.println("toLogin()方法已经执行完。");
		return null;
	}
	
	
	
	
	
	
	//测试myBatis的方法
	@RequestMapping("/showUser")
	public String toIndex(HttpServletRequest request,Model model){
		int userId = Integer.parseInt(request.getParameter("id"));
		User user = this.userService.getUserById(userId);
		model.addAttribute("user", user);
		return "showUser";
	}
}